﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FaissOperation.FaissIndex.Index
{
    public interface IFaissIndex : IDisposable
    {
        int Dimension { get; }
        IntPtr GetNativePtr();
        (long[] ids, float[] distances) Search(float[] query, int topK);
        public void Add(float[] vector);
        public void BatchAdd(float[][] vectors);
        public void Rebuild();

        public void Train(float[][] vectors);

        public bool IsTrained { get; }

    }
}
